package com.java.basis.io.bio.five;

import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.Socket;

/**
 * 目标：实现客户端上传任意类型的文件保存到服务端
 * @author wangning
 * @create 2022-01-05 21:42
 */
public class Client5 {
	public static void main(String[] args) {
		try (
				InputStream in = new FileInputStream("C:\\Users\\acer\\Desktop\\BIO-NIO-AIO\\test1.txt");
		) {

			//1.请求与服务端的socket连接
			Socket socket = new Socket("127.0.0.1", 8888);
			//2.把字节输出流包装成一个数据输出流
			DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
			//3.先发送上传文件的后缀给服务端C:\Users\acer\Desktop\BIO-NIO-AIO
			dos.writeUTF(".txt");//在实际开发的过程中，我们可以进行截取文件的后缀
			//4.把文件数据发送给服务端进行接收

			byte[] buffer = new byte[1024];
			int len;
			while ((len = in.read(buffer)) > 0) {
				dos.write(buffer, 0, len);
			}
			dos.flush();
			socket.shutdownOutput();//通知服务端数据发送完毕

		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}
